package com.midian.service.user;

import java.util.List;

import com.midian.common.exception.BizException;
import com.midian.model.user.User;
import com.midian.model.user.vo.UserInfoVo;
import com.midian.service.common.IBaseService;
/**
 * 用户业务接口
 * @author 飞
 *
 */
public interface IUserService  extends IBaseService<User> {
	/**性别，女：2*/
	public static final Integer SEX_FEMALE = 2;
	/**性别，男：1*/
	public static final Integer SEX_MALE = 1;

	/**身份，管理员：1*/
	public static final Integer IDENTITY_MANAGER = 1;
	/**身份，会员用户：2*/
	public static final Integer IDENTITY_ELSE = 2;
	
	/**用户来源，正常：1*/
	public static final Integer USER_FROM_NORMAL = 1;
	/**用户来源，微信：2*/
	public static final Integer USER_FROM_WECHAT = 2;
	/**用户来源，QQ：3*/
	public static final Integer USER_FROM_QQ = 3;
	
	/**
	 * 根据ID和token值获取用户对象
	 * @param access_token
	 * @param userId
	 * @return
	 * @throws BizException
	 */
	public User getUserByAccessToken(String access_token, Integer userId) throws BizException;
	/**
	 * 根据账号获取用户对象
	 * @param account
	 * @param id
	 * @return
	 * @throws BizException
	 */
	public User getUserByAccount(String account,String id)throws BizException;
	/**
	 * 根据账号修改密码
	 * @param account
	 * @param password
	 * @throws BizException
	 */
	public void updatePasswordByAccount(String account,String password)throws BizException;
	
	/**
	 * 登录
	 * @param entity 用户对象
	 * @return 返回用户VO对象
	 * @throws BizException 
	 */
	public UserInfoVo login(User entity) throws BizException;

	/**
	 * 根据用户id，获取用户的角色id列表
	 * @param userId 用户id
	 * @return
	 * @throws BizException
	 */
	public List<String> getRoleIdListByUserId(String userId) throws BizException;
	/*查询所有用户列表**/
	public List<User> getUsers() throws BizException;
}
